home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / ups / genpower.000 / genpower / genpower-1.0.1 / genpowerfail < prev    next >
Text File  |  1995-07-16  |  2KB  |  72 lines

  1. #! /bin/sh
  2. #
  3. # genpowerfail    This script is run when the UPS tells the system
  4. #        the power has gone. Tell everybody, ans start the 
  5. #        shutdown based on the failure type.                
  6. #        This script is also being run when the power comes
  7. #        up again (if it does in time!)
  8. #
  9. # Version:    /etc/genpowerfail 1.0.1
  10. #
  11. # Author:    Tom Webster <webster@kaiwan.com>
  12. #
  13.  
  14. # Set the path.
  15. PATH=/sbin:/etc:/bin:/usr/bin
  16.  
  17. # Set location of upsstatus file
  18. statpath="/etc/upsstatus"
  19.  
  20. # Set location of file containing PID of running shutdowns
  21. spidpath="/etc/shutdownpid"
  22.  
  23. # See what happened.
  24. case "$1" in
  25.     start)
  26.         # Called with a powerfail event, check to see if a shutdown is running, and stop it if it is.
  27.         if [ -f $spidpath ]
  28.         then
  29.             # Shutdown is running, kill it to process the new event
  30.             shutdown -c "Halting running shutdown to process power event...."
  31.         fi
  32.  
  33.         # Get power problem and act on it
  34.         if [ -r $statpath ]
  35.         then
  36.                     stats=`head -1 $statpath`
  37.             case "$stats" in
  38.                 FAIL)  # Power is down
  39.                                     shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
  40.                     ;;
  41.                 SCRAM) # Battery is low
  42.                     shutdown -r now "THE POWER IS DOWN! BATTERY POWER IS LOW!  EMERGENCY SHUTDOWN!" < /dev/console &
  43.                     ;;
  44.                 CABLE) # Possible bad cable
  45.                                      shutdown -r +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
  46.                     ;;
  47.                                 *)     # Unknown message, assume power is down
  48.                                         shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
  49.                                         ;;
  50.  
  51.             esac
  52.         else
  53.             # genowerfail called, and upsstatus dosen't exist.
  54.             # Assume user is using powerd, and shutdown.
  55.             shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
  56.  
  57.         fi
  58.         ;;
  59.       stop)
  60.         # Ok, power is good again. Say so on the console.
  61.         #echo "THE POWER IS BACK, GOING MULTI USER"
  62.  
  63.         shutdown -c "THE POWER IS BACK"
  64.         ;;
  65.       *)
  66.         echo "Usage: /etc/genpowerfail {start|stop}"
  67.         exit 1
  68.         ;;
  69.   esac
  70.  
  71.   exit 0
  72.